home *** CD-ROM | disk | FTP | other *** search
/ Merciful 5 / Merciful - Disc 5.iso / software / p / pcqpascalv1.2d.lha / Examples2 / Printer-PCQ / Printer.p
Encoding:
Text File  |  1997-05-06  |  1.6 KB  |  76 lines

  1. Program PrinterDemo;
  2.  
  3. {$I "Include:Exec/Memory.i"}
  4. {$I "Include:Exec/Devices.i"}
  5. {$I "Include:Utils/IOUtils.i"}
  6. {$I "Include:Exec/IO.i"}
  7. {$I "Include:Utils/StringLib.i"}
  8. {$I "Include:Devices/Printer.i"}
  9. {$I "Include:Devices/Parallel.i"}
  10.  
  11. VAR  i, OpDv, error : Integer;
  12.      MyPort  : MsgPortPtr;
  13.      MyReq   : IoStdReqPtr;
  14.      Buffer : String;
  15.  
  16.      Status : Array[0..1] of Byte;
  17.  
  18.  
  19. PROCEDURE PRT_Write(Buffer : Address; len : Integer);
  20. VAR i : Integer;
  21. BEGIN
  22.   With MyReq^ do Begin
  23.    io_Command:=CMD_WRITE;
  24.    io_data:=Buffer;
  25.    io_Length:=len;
  26.   end;
  27.   i:=DoIO(MyReq);
  28. END;
  29.  
  30. Begin
  31.   MyPort:=CreatePort(NIL,0);
  32.   MyReq:=CreateStdIO(MyPort);
  33.   OpDv:=OpenDevice("printer.device",0,MyReq,0);
  34.  
  35.   Buffer:=AllocString(20);
  36.  
  37.   Writeln("examining printer status ...\n");
  38.  
  39.   With MyReq^ do Begin
  40.    io_Command:=PRD_QUERY;
  41.    io_data:=adr(Status);
  42.   end;
  43.   i:=DoIO(MyReq);
  44.  
  45.   If (Status[0] AND 1)<>0 then Writeln("printer offline")
  46.                                else Writeln("printer online");
  47.   If (Status[0] AND 2)<>0 then Writeln("paper OK")
  48.                                else Writeln("paper out");
  49.   If (Status[0] AND 4)<>0 then Writeln("printer is ready")
  50.                                else Writeln("printer is busy");
  51.  
  52.   If (Status[0] AND 4)<>0 then
  53.    BEGIN
  54.     Writeln("\nsending page 1 ...");
  55.     StrCpy(Buffer,"page 1");
  56.     PRT_Write(Buffer,StrLen(Buffer));
  57.  
  58.  
  59.     Writeln("sending FORM FEED ...");
  60.     Buffer[0]:=chr($0C);
  61.     PRT_Write(Buffer,1);
  62.  
  63.  
  64.     Writeln("sending page 2 ...\n");
  65.     StrCpy(Buffer,"page 2");
  66.     PRT_Write(Buffer,StrLen(Buffer));
  67.    END;
  68.  
  69.   Writeln("\nready");
  70.  
  71.   CloseDevice(MyReq);
  72.   DeleteStdIO(MyReq);
  73.   DeletePort(MyPort);
  74. end.
  75.  
  76.